| KOMPUTERY |  Ile płacić programistom?  

           Napisałeś na czyjeś zamówienie program liczący n linii. Zajęło Ci to k godzin czasu,      a każdą z nich cenisz a +zł. Rachunek jest prosty, powinieneś otrzymać k*zł. W wielu jednak przypadkach zleceniodawca chciałby wiedzieć, czy podane przez ciebie liczby są zgodne           z prawdą.

            Przy tego typu problemach pewną pomocą może być prosty model matematyczny tego zagadnienia prezentowany w książce B.W. Boehma, "Software Engineering Economics", wydanej przez Pretnice Hall w 1981 roku.

            Zgodnie z tym modelem, liczba osobomiesięcy potrzebna do napisania programu liczącego n linii wynosi:

 

                                N                        a          

M=2.4 * [   ----------------]          

                             1000

 

 

gdzie a jest współczynnikiem zależnym od rodzaju programu:

 a=1.05 dla zwykłych programów,

   =1.20 dla modyfikacji istniejącego programu.

Drugą wielkością charakteryzującą opisywany model jest ilość czasu potrzebna na stworzenie oprogramowania przez zespół ludzi T=2.5*Mb. Gdzie b, podobnie jak a, zależy od rodzaju programu:

a=0.38, 0.35, 0.32.

Podzielenie M przez T pozwala odpowiedzieć na pytanie ilu programistów należy zatrudnić, aby jak najszybciej stworzyć dane oprogramowanie.

            Ilustracją przedstawionych wzorów jest poniższy przykład. Dla zwykłego programu liczącego 32000 linii otrzymujemy:      

                                                            1.05

M=2.4*(32)  =91osobomiesięcy,

 

                                                       0.38    

T=2.5*(91)   =14 miesięcy.

Oznacza to, że postawione zadanie może być wykonane przez zespół 6-7 programistów pracujących przez 14 miesięcy.

            Gdy porównamy wyniki wynikające z tego modelu z własnymi doświadczeniami, to często okaże się, że w swojej pracy uzyskujemy 500-600% "normy". Niestety, przekonanie       o naszej wyższości nad profesjonalistami, może być złudne. Podane tutaj czasy dotyczą całego procesu tworzenia oprogramowania, łącznie z wymyśleniem algorytmu, napisaniem kodu, jego uruchomieniem i testowaniem. Programy pisane przez amatorów są często niewystarczająco przetestowane, a przy ich pisaniu nierzadko korzystamy z gotowych recept postępowania. Poza tym naprawdę trudno jest napisać w warunkach domowych gotowy profesjonalny produkt, który nie 'padnie' przy pierwszej lub drugiej demonstracji,                     a jednocześnie będzie reprezentował odpowiedni poziom jakościowy.

 

Autor:
Grzegorz Gałęzowski
gsgalezowski@poczta.onet.pl



                    
ARCHIWALIA | WEBHELP.PL | REDAKCJA                  POPRZEDNIA STRONA | SPIS TREŚCI | NASTĘPNA STRONA

CONTENTS COPYRIGHT © 2000 - 2001, KRZYSZTOF DZIEWOŃSKI. ALL RIGHTS RESERVED.